﻿@*
//------------------------------------------------------------------------------
//  此代码版权声明为全文件覆盖，如有原作者特别声明，会在下方手动补充
//  此代码版权（除特别声明外的代码）归作者本人Diego所有
//  源代码使用协议遵循本仓库的开源协议及附加协议
//  Gitee源代码仓库：https://gitee.com/diego2098/ThingsGateway
//  Github源代码仓库：https://github.com/kimdiego2098/ThingsGateway
//  使用文档：https://diego2098.gitee.io/thingsgateway-docs/
//  QQ群：605534569
//------------------------------------------------------------------------------
*@

@page "/gatewayruntime/historyvalue"
@namespace ThingsGateway.Gateway.Blazor
@using System.Linq.Expressions;
@using BlazorComponent;
@using Furion.DataValidation;
@using Mapster;
@using Masa.Blazor.Presets;
@using System.IO;
@using Masa.Blazor;
@using Microsoft.AspNetCore.Authorization;

@using ThingsGateway.Admin.Blazor;
@using ThingsGateway.Admin.Core;


@attribute [Authorize]
@inherits BaseComponentBase
@inject UserResoures UserResoures
@layout MainLayout
@inject InitTimezone InitTimezone
<AppDataTable @ref="_datatable" TItem="HistoryValue" SearchItem="HisPageInput"
              AddItem="object" EditItem="object" IsShowSelect=false DescFunc=@(memberInfo=>memberInfo.GetCustomAttribute<SqlSugar.SugarColumn>(true)?.ColumnDescription)
              IsMenuOperTemplate=false
              QueryCallAsync="QueryCallAsync"
                IsShowDetailButton
                IsShowQueryButton>
    <SearchTemplate>

        <MMenu CloseOnContentClick="false" OffsetY Context="menu">
            <ActivatorContent>
                <MTextField Dense Readonly Style="max-width:200px;" HideDetails=@("auto") Class="my-1  mx-2 "
                            Value="context.StartTime.Value.ToDefaultDateTimeFormat(InitTimezone.TimezoneOffset)"
                @attributes="menu.Attrs" Outlined Label=@context.Description(x => x.StartTime) />
            </ActivatorContent>
            <ChildContent>
                <AppDateTimePicker @bind-Value="context.StartTime"></AppDateTimePicker>
            </ChildContent>
        </MMenu>

        <MMenu CloseOnContentClick="false" OffsetY Context="menu">
            <ActivatorContent>
                <MTextField Dense Readonly Style="max-width:200px;" HideDetails=@("auto") Class="my-1  mx-2 "
                            Value="context.EndTime.Value.ToDefaultDateTimeFormat(InitTimezone.TimezoneOffset)" Clearable
                @attributes="menu.Attrs" Outlined Label=@context.Description(x => x.EndTime) />
            </ActivatorContent>
            <ChildContent>
                <AppDateTimePicker @bind-Value="context.EndTime"></AppDateTimePicker>
            </ChildContent>
        </MMenu>


        <MTextField Dense Style="max-width:200px;" HideDetails=@("auto") Class="my-1  mx-2 " @bind-Value="context.Name" Clearable
                        Outlined Label=@context.Description(x => x.Name) />


    </SearchTemplate>

    <ItemColWithDTTemplate>
        @if (context?.Value?.GetType() == typeof(DateTime))
        {
            <span>
                @((DateTime.SpecifyKind((DateTime)context.Value, DateTimeKind.Utc)).ToLocalTime().ToDefaultDateTimeFormat(InitTimezone.TimezoneOffset))
            </span>
        }
        else
        {
            @switch (context.Header.Value)
            {
                case nameof(context.Item.IsOnline):
                    <EnableChip Value="context.Item.IsOnline" DisabledLabel="离线" EnabledLabel="在线">
                    </EnableChip>
                    break;
                default:
                    @if (context.Header.CellClass?.Contains("text-truncate") == true)
                    {
                        <span title=@context.Value>
                            @context.Value
                        </span>
                    }
                    else
                    {
                        @context.Value
                    }
                    break;

            }

        }
    </ItemColWithDTTemplate>

</AppDataTable>



